package gov.gfbzb.advice.service;

import gov.gfbzb.advice.controller.dto.LoginDTO;
import gov.gfbzb.advice.controller.dto.UserDTO;
import gov.gfbzb.advice.controller.vo.UserVO;
import gov.gfbzb.advice.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import io.jsonwebtoken.Claims;

/**
 * IUserService 服务类
 * @author 小宇
 * @since 2025-07-05
 */
public interface IUserService extends IService<User> {

    /**
     * 用户注册
     * @param userDTO 用户DTO
     * @return 注册结果
     */
    Boolean register(UserDTO userDTO);

    /**
     * 用户登录
     * @param loginDTO 用户登录DTO
     * @return user前端显示对象
     */
    UserVO login(LoginDTO loginDTO);

    /**
     * 获取用户信息
     * @return jwt——claims
     */
    Claims getClaims();

    /**
     * 生成JWT令牌
     * @param user  用户
     * @return JWT令牌
     */
    String generateToken(User user);

    /**
     * 通过时间戳获取登录验证码
     * @param timestamp 时间戳
     * @return 登录验证码
     */
    String getCheckData(String timestamp);
}
